#include "mypushbutton.h"
#include<QDebug>
#include<QPixmap>
#include<QPainter>
#include<QPropertyAnimation>
//MypushButton::MypushButton(QWidget *parent)
//    : QWidget{parent}
//{

//}
MypushButton::MypushButton(QString normalImg, QString pressImg)
{
    this->normalImgPath = normalImg;
    this->pressImgPath = pressImg;

    QPixmap pix;
    bool ret = pix.load(normalImg);
    if(!ret)
    {
        qDebug()<< "图片加载失败" ;
        return;
    }

//    设置固定大小
    this->setFixedSize(pix.width(),pix.height());

//    设置不规则图片样式
    this->setStyleSheet("QPushButton{border:0px;}");
    //设置图标
    this->setIcon(pix);
//    设置图标大小
    this->setIconSize(QSize(pix.width(),pix.height()));
}
void MypushButton::zoom1()
{
    //创建动态对象
    QPropertyAnimation * animation1 = new QPropertyAnimation(this,"geometry");
//    设置动画时间间隔   毫秒
    animation1->setDuration(200);
    //起始位置
    animation1->setStartValue(QRect(this->x(),this->y(),this->width(),this->height()));
    //结束位置
    animation1->setEndValue(QRect(this->x(),this->y() + 10,this->width(),this->height()));

    //设置弹跳曲线
    animation1->setEasingCurve(QEasingCurve::OutBounce);
    //开始执行
    animation1->start();
}
void MypushButton::zoom2()
{
    //创建动态对象
    QPropertyAnimation * animation2 = new QPropertyAnimation(this,"geometry");
    //    设置动画时间间隔   毫秒
    animation2->setDuration(200);
    //起始位置
    animation2->setStartValue(QRect(this->x(),this->y()+ 10,this->width(),this->height()));
    //结束位置
    animation2->setEndValue(QRect(this->x(),this->y(),this->width(),this->height()));

    //设置弹跳曲线
    animation2->setEasingCurve(QEasingCurve::OutBounce);
    //开始执行
    animation2->start();
}
void MypushButton::mousePressEvent(QMouseEvent *e)
{
    if(this->pressImgPath != "")//不为空   需要切图片
    {
        QPixmap pix;
        bool ret = pix.load(this->pressImgPath);
        if(!ret)
        {
            qDebug()<< "图片加载失败" ;
            return;
        }

        //    设置固定大小
        this->setFixedSize(pix.width(),pix.height());

        //    设置不规则图片样式
        this->setStyleSheet("QPushButton{border:0px;}");
        //设置图标
        this->setIcon(pix);
        //    设置图标大小
        this->setIconSize(QSize(pix.width(),pix.height()));
    }

    //让父类执行其他操作
    return QPushButton::mousePressEvent(e);
}
void MypushButton::mouseReleaseEvent(QMouseEvent *e)
{
    if(this->pressImgPath != "")//不为空   需要切图片
    {
        QPixmap pix;
        bool ret = pix.load(this->normalImgPath);
        if(!ret)
        {
            qDebug()<< "图片加载失败" ;
            return;
        }

        //    设置固定大小
        this->setFixedSize(pix.width(),pix.height());

        //    设置不规则图片样式
        this->setStyleSheet("QPushButton{border:0px;}");
        //设置图标
        this->setIcon(pix);
        //    设置图标大小
        this->setIconSize(QSize(pix.width(),pix.height()));
    }

    //让父类执行其他操作
    return QPushButton::mouseReleaseEvent(e);
}












